Объединение текстовых данных и печать условий отбора записей в отчете

В отчетах чаще, чем в формах, применяются вычисляемые поля, которые представляют собой комбинацию данных из различных полей таблиц или базовых запросов. Типичным примером такого объединения является поле, содержащее фамилию и инициалы человека, хотя в базе данных часто фамилия, имя и отчество хранятся в разных полях. Второй, не менее распространенный случай, когда в одном столбце отчета требуется вывести адрес, который обычно тоже хранится в нескольких отдельных полях таблицы. Часто в одном столбце отчета объединяют данные из нескольких полей таблицы в целях уменьшения ширины отчета. Примеры создания текстовых выражений такого типа приводились ранее (см. гл. 4, 6).

Еще один типичный случай объединения текстовых полей использовался нами в отчете "Заказы клиентов" (см. рис. 10.21). Это поля, которые выглядят в отчете как надписи ("Итого по заказу <номер>:", "Итого по клиенту <имя>:"), хотя на самом деле представляют собой комбинацию текстовых строк и значений полей базового запроса.

Иногда в отчетах нужно вывести условия отбора записей. Для этого также применяют вычисляемые поля, содержащие комбинацию текста и параметров отбора. Пример такого выражения показан на рис. 10.27: в заголовке отчета создано поле, которое вычисляется с помощью, выражения, содержащего ссылки на параметры базового запроса [Начальная дата] и [Конечная дата]. В этом же отчете используются и другие вычисляемые поля, объединяющие текстовые данные из разных полей.

Аналогично можно написать выражение, которое будет ссылаться на значения полей открытой формы, часто используемой для ввода критериев отбора записей. Примером такой формы, представляющей собой диалоговое окно, может быть форма "Продажи по годам" (Sales by Year Dialog), представленная на рис. 10.28.

Для того чтобы в заголовке отчета написать интервал дат, заданных в форме "Продажи по годам", необходимо для источника данных вычисляемого поля использовать выражение: ="Продажи с " & Forms![Продажи по годам]![НачальнаяДата] & " по " & Forms![Продажи по годам]![КонечнаяДата] для английской версии: ="Продажи с " & Forms![Sales by Year Dialog]![BeginningDate] & " no " & Forms![Sales by Year Dialog]![EndingDate]

Замечание

Для того чтобы значения таких выражений были правильными, необходимо, чтобы форма, на которую они ссылаются (в данном случае "Продажи по годам"), была открыта в момент загрузки отчета. В противном случае в этих вычисляемых полях будет отображен код ошибки.

Рис. 10.27. Объединение текстовых строк и полей запроса в отчетах

Рис. 10.28. Диалоговое окно для ввода критериев отбора записей

Совет

Если захотите поэкспериментировать с формой "Продажи по годам", советуем вам временно изменить свойство Модальное (Modal) этой формы на Нет (No), чтобы иметь возможность, в то время как форма открыта, переключиться на отчет, содержащий вычисляемые поля.